package com.adnaan.backend.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 自定义注解，用于限制接口访问频率和防止重复提交
 */
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RateLimiter {
    /**
     * 限流时间窗口，单位：秒
     */
    int time() default 60;

    /**
     * 限流时间窗口内最大请求次数
     */
    int count() default 100;

    /**
     * 防重复点击时间间隔，单位：毫秒
     */
    long interval() default 1000;

    /**
     * 限流key前缀
     */
    String prefix() default "rate_limit:";

    /**
     * 提示消息
     */
    String message() default "请求过于频繁，请稍后重试";
}